package br.com.sisat.modelo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Date;
import java.util.ArrayList;
import java.util.List;

import br.com.sisat.persistencia.DAO.MarcarConsultaDAO;
import br.com.sisat.util.ObjectUtil;
import br.com.sisat.util.UtilDatas;

public class ProntuarioDTO implements Serializable {

	private static final long serialVersionUID = 1L;

	private Long idPessoa;
	
	private Long idProntuario;
	
	private PacienteDTO pacienteDTO;
	
	private Date dtConsulta;
	
	private BigDecimal altura;
	
	private BigDecimal peso;
	
	private BigDecimal imc;
	
	private String diagnostico;
	
	private Long nuEspecialidade;

	private String noEspecialidade;
	
	private Long nuTerapeuta;
	
	private String noTerapeuta;
	
	private List<ProntuarioDTO> prontuarios;
	
	private String dataFormatada;
	
	public PacienteDTO getPacienteDTO() {
		if (pacienteDTO == null) {
			pacienteDTO = new PacienteDTO();
		}
		return pacienteDTO;
	}

	public void setPacienteDTO(PacienteDTO pacienteDTO) {
		this.pacienteDTO = pacienteDTO;
	}

	public String getDiagnostico() {
		return diagnostico;
	}

	public void setDiagnostico(String diagnostico) {
		this.diagnostico = diagnostico;
	}

	public Long getNuEspecialidade() {
		return nuEspecialidade;
	}

	public void setNuEspecialidade(Long nuEspecialidade) {
		this.nuEspecialidade = nuEspecialidade;
	}

	public List<ProntuarioDTO> getProntuarios() {
		if (prontuarios == null) {
			prontuarios = new ArrayList<ProntuarioDTO>();
		}
		return prontuarios;
	}

	public void setProntuarios(List<ProntuarioDTO> prontuarios) {
		this.prontuarios = prontuarios;
	}

	public Long getIdProntuario() {
		return idProntuario;
	}

	public void setIdProntuario(Long idProntuario) {
		this.idProntuario = idProntuario;
	}

	public String getNoEspecialidade() throws Exception {
		if(!ObjectUtil.isEmpty(nuEspecialidade)){
			noEspecialidade = MarcarConsultaDAO.getInstance().recuperarNomeEspecialiade(nuEspecialidade);
		}
		return noEspecialidade;
	}

	public void setNoEspecialidade(String noEspecialidade) {
		this.noEspecialidade = noEspecialidade;
	}

	public Long getNuTerapeuta() {
		return nuTerapeuta;
	}

	public void setNuTerapeuta(Long nuTerapeuta) {
		this.nuTerapeuta = nuTerapeuta;
	}

	public String getNoTerapeuta() throws Exception {
		if(!ObjectUtil.isEmpty(nuTerapeuta)){
			noTerapeuta = MarcarConsultaDAO.getInstance().recuperarNomeTerapeuta(nuTerapeuta);
		}
		return noTerapeuta;
	}

	public void setNoTerapeuta(String noTerapeuta) {
		this.noTerapeuta = noTerapeuta;
	}

	public Date getDtConsulta() {
		return dtConsulta;
	}

	public void setDtConsulta(Date dtConsulta) {
		this.dtConsulta = dtConsulta;
	}

	public BigDecimal getAltura() {
		return altura;
	}

	public void setAltura(BigDecimal altura) {
		this.altura = altura;
	}

	public BigDecimal getPeso() {
		return peso;
	}

	public void setPeso(BigDecimal peso) {
		this.peso = peso;
	}

	public BigDecimal getImc() {
		return imc;
	}

	public void setImc(BigDecimal imc) {
		this.imc = imc;
	}

	public Long getIdPessoa() {
		return idPessoa;
	}

	public void setIdPessoa(Long idPessoa) {
		this.idPessoa = idPessoa;
	}

	public String getDataFormatada() {
		if(!ObjectUtil.isEmpty(dtConsulta)){
			dataFormatada = UtilDatas.dateToSTR(dtConsulta);
		}
		return dataFormatada;
	}

	public void setDataFormatada(String dataFormatada) {
		this.dataFormatada = dataFormatada;
	}
	
	
}
